package com.ruoyi.project.system.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.project.system.domain.SmPay;
import com.ruoyi.project.system.domain.vo.PayVo;
import org.apache.ibatis.annotations.Select;

/**
 * 支付Mapper接口
 */
public interface SmPayMapper {

    @Select("SELECT sp.orderNo, sp.payState FROM sm_pay sp WHERE sp.outId = (SELECT outId FROM sm_query WHERE id = #{queryId}) ORDER BY sp.createTime DESC LIMIT 1")
    Map<String, Object> queryPayStateByQueryId(Long queryId);

    @Select("SELECT payState FROM sm_pay WHERE orderNo = #{orderNo}")
    String queryPayStateByOrderNo(String orderNo);

    SmPay selectPayByOrderNo(String orderNo);

    /**
     * 查询支付
     *
     * @param id 支付主键
     * @return 支付
     */
    SmPay selectSmPayById(Integer id);

    /**
     * 查询支付列表
     *
     * @param smPay 支付
     * @return 支付集合
     */
    List<PayVo> selectSmPayList(PayVo smPay);

    /**
     * 新增支付
     *
     * @param smPay 支付
     * @return 结果
     */
    int insertSmPay(SmPay smPay);

    /**
     * 修改支付
     *
     * @param smPay 支付
     * @return 结果
     */
    int updateSmPay(SmPay smPay);

    /**
     * 删除支付
     *
     * @param id 支付主键
     * @return 结果
     */
    int deleteSmPayById(Integer id);

    /**
     * 批量删除支付
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteSmPayByIds(Integer[] ids);
}
